from api.auth import login, logout, check_login_status
from api.request import api_client
from utils.config import config
from utils.test_data import test_data

def login_example():
    """登录示例"""
    try:
        # 从测试数据中获取用户名和密码
        test_users = test_data.get('users', [])
        if test_users:
            test_user = test_users[0]  # 使用第一个测试用户
            username = test_user.get('username', 'test_user')
            password = test_user.get('password', 'password')
            
            login(username, password)
            print(f'使用测试用户 {username} 登录成功')
        else:
            # 如果没有测试用户数据，使用默认值
            login('default_user', 'default_password')
            print('使用默认用户登录成功')
        
        # 从测试数据中获取API路径
        endpoints = test_data.get('endpoints', {})
        profile_endpoint = endpoints.get('user_profile', '/user/profile')
        
        # 登录后可以直接调用其他API，认证信息会自动加载
        response = api_client.get(profile_endpoint)
        user_data = response.json()
        print(f'用户数据: {user_data}')
    except Exception as e:
        print(f'操作失败: {e}')

def check_login():
    """检查登录状态"""
    is_logged_in = check_login_status()
    print(f'是否已登录: {is_logged_in}')

def logout_example():
    """登出示例"""
    try:
        logout()
        print('登出成功')
    except Exception as e:
        print(f'登出失败: {e}')

if __name__ == "__main__":
    # 打印当前配置和测试数据
    print(f"当前API配置: {config.get('api')}")
    print(f"测试用户数量: {len(test_data.get('users', []))}")
    
    login_example()
    check_login()
    # logout_example()